//
//@author jltxseo
// Created by junlintianxia on 2019/10/13.
//



#ifndef LEARNOPENGLANDROIDPRO_SHADERHELPER_H
#define LEARNOPENGLANDROIDPRO_SHADERHELPER_H

#include <GLES2/gl2.h>
#include <jni.h>
#include <android/asset_manager_jni.h>
#include <android/bitmap.h>

static JNIEnv *sEnv = NULL;
static jobject sAssetManager = NULL;

class ShaderHelper {

public:
    /**
     * 传入java层的assetManager
     * @param env
     * @param assetManager
     */
    static void setEnvAndAssetManager(JNIEnv *env, jobject assetManager);

    /**
     *根据文件名打开资源文件
     * @param assetFilePath
     * @return
     */
    static AAsset *loadAsset(const char *assetFilePath);

    /**
     * 传入着色器文件路径，读取着色器代码
     * @param shaderCode   传入回传着色器代码指针
     * @param shadeFilePath 传入文件路径指针
     * @return  fasle:读取失败  true：读取成功
     */
    static char * readShaderCodeFromFile(const char *shadeFilePath);

    /**
    * 将Bitmap读取成data二进制
    * @param data 要返回的二进制数据
    * @param width 图片宽
    * @param height 图片高
    * @param filePath 图片相对的工程的本地路径
    * @return
    */
    static const bool
    loadTexturePixelsFromBitmap(void **data, int *width, int *height, jobject bitmap);

};


#endif //LEARNOPENGLANDROIDPRO_SHADERHELPER_H
